<?php
/**
 * @brief フィルタ機能のテストクラスとテスト仕様書
 * 
 * フィルタ機能に関するテストを行います。
 *  
 * @subpage filter
 * @since 2012/05/21
 * @author m.yuki shinokiwa@gmail.com
 * @date 2012/05/21 m.yuki 作成
 */
class TestCaseofFilter extends UnitTestCase {
	private $_execMethod;
	
	/**
	 * @brief フィルタの登録テスト(正常系)
	 * 
	 * 基本的に登録できるかどうかのみなので、例外が発生しなければ問題なしとします。
	 * 
	 * - 条件
	 *  - フィルタの種類
	 *   - クラス
	 *   - オブジェクト
	 *   - 両方
	 *  - フィルタ指定の方法
	 *   - クラスの存在する文字列
	 *   - クラスの存在しない文字列
	 *   - クラスのインスタンス
	 *   - null
	 *   - 配列による複数指定
	 * 
	 * @date 2012/05/21 m.yuki
	 */
	private function TestofRegister () {
		// YuToriの初期化
		YuTori::init();
		
		// クラスフィルタへの登録
		$this->assertNull(YuTori::regClassFilter('TestCaseofFilter_vFilter'), 'クラスの存在する文字列の登録');
		$this->assertNull(YuTori::regClassFilter(new TestCaseofFilter_vFilter()), 'クラスのインスタンスの登録');
	}

	/**
	 * @brief フィルタの登録テスト(異常系1)
	 * 
	 * クラスの存在しない文字列のテスト
	 * 
	 * @date 2012/05/21 m.yuki
	 */
	private function TestofRegisterExeption1 () {
		// YuToriの初期化
		YuTori::init();

		$this->expectException(new Exception ('Filter can regist only exists classes'), 'クラスの存在しない文字列の登録(例外発生)');
		YuTori::regClassFilter('TestCaseofFilter_vFilter');
	}

}

/**
 * @brief フィルタ登録テスト用の仮想フィルタ
 * 
 * @since 2012/05/21
 * @author m.yuki shinokiwa@gmail.com
 * @date 2012/05/21 m.yuki 作成
 */
class TestCaseofFilter_vFilter {
	
}